/**
 *
 * async:声明使异步调用同步化,方法内可使用await将程序挂起,使程序等待异步结果
 *
 * await:与async对应,使用await使任务挂起,等待耗时任务的结果
 *
 * Future:定义一个异步任务
 */

typedef Callback<T> = void Function(T t);

void main() {
  getRes((res) {
    print(res);
  });

  print("呵呵");
}

void getRes(Callback call) async {
  var res = await getData();
  call(res);
}

Future<String> getData() {
  return Future<String>.delayed(Duration(seconds: 2), () {
    return "哈哈";
  });
}
